package lzupdater.timing;

//LZRosterUpdater, a java client to update LZRoster
//Copyright (C) 2008 Fraskor from Krasus (e-mail: fraskor@gmail.com)
//
//This file is part of LZRosterUpdater.
//
//LZRosterUpdater is free software: you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program.  If not, see <http://www.gnu.org/licenses/>.

/**
 * Interface for the TimedTask used by the {@link CentralTimer}
 * 
 * @author Fraskor
 */
public interface TimedTask {
	/**
	 * Method called when the timer is up.
	 * 
	 * @param time
	 *            the time of the call in nano-secondes (from
	 *            {@link System.nanoTime()})
	 */
	public void performTask(long time);

	/**
	 * Method called when the task is done (i.e. if the time is up and the task
	 * should no be repeated, or when the task is stopped by the user)
	 */
	public void taskDone();
}
